package com.graduation.project.service.system;

import com.baomidou.mybatisplus.extension.service.IService;
import com.graduation.project.entity.dto.unit.ListUnitDTO;
import com.graduation.project.entity.dto.UpdateStatusDTO;
import com.graduation.project.entity.dto.unit.SaveOrUpdateUnitDTO;
import com.graduation.project.entity.po.Unit;
import com.graduation.project.utils.ResultUtil;

public interface UnitManagementService extends IService<Unit> {

    /**
     * （条件）查询单位列表数据
     * @param input 查询单位列表输入类
     * @return ResultUtil
     */
    ResultUtil<?> listUnitByCondition(ListUnitDTO input);

    /**
     * 获取弹窗父级单位下拉数据
     * @return ResultUtil
     */
    ResultUtil<?> listParentUnit();

    /**
     * 新增单位
     * @param input 新增/修改输入类
     * @return ResultUtil
     */
    ResultUtil<?> addUnit(SaveOrUpdateUnitDTO input);

    /**
     * 新增单位
     * @param input 新增/修改输入类
     * @return ResultUtil
     */
    ResultUtil<?> updateUnit(SaveOrUpdateUnitDTO input);

    /**
     * 删除单位及其子项
     * @param id 选中数据id
     * @return ResultUtil
     */
    ResultUtil<?> deleteUnit(Long id);

    /**
     * 修改单位状态
     * @param input 修改状态输入类
     * @return ResultUtil
     */
    ResultUtil<?> updateUnitStatusById(UpdateStatusDTO input);
}
